<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>state</title>
  </head>
  <body>
    <!-- 准备好一个容器 -->
    <div id="test"></div>

    <!-- 引入react核心库 -->
    <script src="../js/react.development.js"></script>

    <!-- 引入react-dom用于支持react操作DOM  -->
    <script src="../js/react-dom.development.js"></script>

    <!-- 引用bable,用于将jsx转为js -->
    <script src="../js/babel.min.js"></script>

    <script type="text/babel">
      // 1.创建组件
      class Weather extends React.Component {
        constructor(props) {
          super(props)
          // 初始化状态
          this.state = { isHot: true }
          this.changeWeather = this.changeWeather.bind(this)
        }

        render() {
          return (
            <h1 onClick={this.changeWeather}>
              今天天气很{this.state.isHot ? '炎热' : '凉爽'}
            </h1>
          )
        }

        changeWeather() {
          // 严重注意：状态（state）不可直接更改，要借助内部的API，下面一行代码就是直接更改，所以是错的。
          // this.state.isHot = !this.state.isHot
          // 严重注意：状态必须通过setState进行更改，且更新是一种合并，不是替换。
          this.setState({ isHot: !this.state.isHot })
          console.log(this.state.isHot)
        }
      }

      // 2.渲染组件到页面
      ReactDOM.render(<Weather />, document.getElementById('test'))
    </script>
  </body>
</html>
